14 - Rechnerarchitektur [ID:10868]
50 von 658 angezeigt

Gut, also dann begrüße ich Sie zum finalen Akt, zur letzten Vorlesung in der Rechneraktur,

heute im Wintersemester. Ich habe eigentlich nicht mehr viel. Der Max war demassen fleißig,

ich hätte gar nicht erwartet, dass er jetzt da gleich das ganze Kapitel macht, aber er ist da

irgendwie durchgegangen, schön, muss ich auch nicht mehr so viel machen. Also er hat mir nur noch

gebeten, ich glaube am Ende war nicht so ganz klar, hat er gemeint, wie diese Abschätzung

da zustande kommt. Soll ich da noch mal ein paar Worte dazu sagen? Das könnte ich noch mal machen.

Ansonsten habe ich dann inhaltlich tatsächlich nichts mehr, dennoch durchaus interessante Sachen,

und zwar die Evaluation natürlich. Dann doch noch mal einen kleinen Hinweis auf eine Masterarbeit,

Projektarbeit oder sowas, die Doktoranden haben Ihnen ja schon ein bisschen was vorgestellt. Und

was nicht ganz unwichtig ist natürlich, ich mache immer in meinen Vorlesungen,

in der letzten Vorlesung, gehe ich noch mal so im Schnellverfahren durch die Folien ein bisschen

durch und gebe Ihnen Hinweise, was in der mündlichen Prüfung dann dran kommt und was ich nicht so

genau, ich meine, ich habe ja während der Vorlesung schon immer mal gesagt, so Folie hier, die könnte

vielleicht ganz interessant sein, falls wir uns mal treffen. Und somit man die natürlich nicht auf

der Straße irgendwo, aber das können wir dann eben heute noch mal machen und damit können wir

das heutige Programm gestalten. Ja, hallo, soll ich noch mal ein bisschen darauf eingehen oder sagen

Sie alle, ich mache es noch mal, die sechs Folien, dann gehe ich noch mal schnell durch. Ja, also das

Beispiel am Ende für einen parallelen Algorithmus war diese Matrix-Vektor-Multiplikation, die ich mir

da ausgesucht hatte und der Fall ist ja klar, wie schaut das Ganze im Seriellen aus? Ich habe also

hier eine, also bei der Matrix-Vektor-Multiplikation, wo ist sie? Hier ist die N mal N-Matrix, hier ist

der Vektor N mal 1 und wenn die Matrix N mal N ist, dann muss folglicherweise der Vektor M mal 1 sein,

also M zahlen eine Spalte und wie macht man das? Ja, üblicherweise eben über eine zweifach

verschachtelte Schleife, in dem ich Zeile mal Spalte eben hier durchrechne und ja, ist klar,

das können wir alle aus der Mathematik. Wir machen also aus der Grundlagenvorlesung Mathematik Zeile

mal Spalte und müssen eigentlich letztendlich N Skalarprodukte berechnen und pro Skalarprodukt

haben wir auch wieder einen Aufwand von O von N, N mal O von N, also haben wir das Ganze, wenn wir uns

jetzt das Leben noch ein bisschen einfacher machen, dass wir sagen, wir haben quadratische Matrizen,

dass wir nämlich mit zwei Parametern arbeiten müssen, eben einen Aufwand von O von N Quadrat und jetzt

gucken wir eben mal drauf, kann man das denn nicht irgendwie reduzieren, wenn wir parallelisieren? Und

wie ist jetzt da die Idee? Also wir machen eine Abbildung der Matrix auf eine, wie macht man das auf

so eine Parallelrechnerarchitektur und da gibt es im Prinzip zwei Arten, die Blockstreifenzerlegung

oder die Schachbrettzerlegung und was hat die Blockstreifenzerlegung? Die kann man zeilen

oder spaltenweise machen, also was soll das jetzt heißen? Ich nehme den Datensatz eben her, zerlege

den, zerlege das Ganze in Streifen und weiß die entsprechenden verteilten Datensätze, die jetzt

dabei entstehen, den einzelnen Prozessoren zu und die sollen jetzt eben darauf arbeiten, sollen jeweils

bestimmte Skalarprodukte berechnen und dazu muss der Vektor B, damit sie das können, auf all diese

Prozessoren verteilt werden. Ja, okay, wir betrachten jetzt mal nur die zahlenweise Zerlegung, bei

quadratischen Matrizen ist es relativ egal, ob ich eine zahlen- oder eine spaltenweise Zerlegung mache.

Ja, dann sieht man auch, dann muss, was muss dann jeder Prozessor rechnen, wenn also n mal n die

Gesamtdimension war und ich jetzt eben das Ganze hier aufteile, also die Anzahl der Spalten hier

bleibt gleich, ist ja klar und entlang der, entlang den Zahlen, ja entlang den Zahlen teile ich auf,

ich muss zwar immer überlegen, wenn man rennt entlang einer Spalte, aber das heißt eigentlich,

dass man die Zahlen nacheinander durchläuft, also laufe ich entlang den Zahlen hier in einer

festen Spalte zum Beispiel, dann kommt eben genau n durch p raus, so viel Daten muss jeder einzelne

Prozessor dann bearbeiten und ich muss natürlich dann gucken, dass das nicht so sehr, im Idealfall

ist n durch p ganzzahlig teilbar, das wird nicht immer der Fall sein, so schön ist das Leben nicht,

da muss ich natürlich gucken, dass ich einen Prozessor nicht überlasse, das heißt also n

durch p dividiert und das was dann als Rest üblich bleibt bei einer Motodivision sollte ich

gleichmäßig jeden eins mehr geben und damit kommt dann letztendlich raus, dass jeder Prozessor entweder

das Suprenum von n individuiert durch p bzw. das Individuum von n dividiert durch p an Matrix-Zahlen

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:19:05 Min

Aufnahmedatum

2013-02-06

Hochgeladen am

2019-04-30 03:59:03

Sprache

de-DE

Die Vorlesung baut auf die in den Grundlagen der Rechnerarchitektur und -organisation vermittelten Inhalte auf und setzt diese mit weiterführenden Themen fort. Es werden zunächst grundlegende fortgeschrittene Techniken bei Pipelineverarbeitung und Cachezugriffen in modernen Prozessoren und Parallelrechnern behandelt. Ferner wird die Architektur von Spezialprozessoren, z.B. DSPs und Embedded Prozessoren behandelt. Es wird aufgezeigt, wie diese Techniken in konkreten Architekturen (Intel Nehalem, GPGPU, Cell BE, TMS320 DSP, Embedded Prozessor ZPU) verwendet werden. Zur Vorlesung werden eine Tafel- und eine Rechnerübung angeboten, durch deren erfolgreiche Beteiligung abgestuft mit der Vorlesung 5 bzw. 7,5 ECTS erworben werden können. In den Tafelübungen werden die in der Vorlesung vermittelten Techniken durch zu lösende Aufgaben vertieft. In der Rechnerübung soll u.a. ein einfacher Vielkern-Prozessor auf Basis des ZPU-Prozessors mit Simulationswerkzeugen aufgebaut werden. Im Einzelnen werden folgende Themen behandelt:
  • Organisationsaspekte von CISC und RISC-Prozessoren

  • Behandlung von Hazards in Pipelines

  • Fortgeschrittene Techniken der dynamischen Sprungvorhersage

  • Fortgeschritten Cachetechniken, Cache-Kohärenz

  • Ausnutzen von Cacheeffekten

  • Architekturen von Digitalen Signalprozessoren

  • Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)

  • Architektur von Parallelrechnern (Clusterrechner, Superrechner)

  • Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)

  • Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)

Empfohlene Literatur
  • Patterson/Hennessy: Computer Organization und Design
  • Hennessy/Patterson: Computer Architecture - A Quantitative Approach

  • Stallings: Computer Organization and Architecture

  • Märtin: Rechnerarchitekturen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen